package com.jboost.common.constant.enums;

import lombok.Setter;

/**
 * @author haorancao
 */

/**
 * 阻断类型抛出异常处理 统一返回code码100，msg自定义
 * code规则说明：前两位代表业务模块，中间两位代表子业务模块，最后两位代表具体的错误含义;
 * 98：第三方对接错误码
 * 99：代表共用工具类
 */
public enum ResultCode {

    SUCCESS(1, "成功"),
    FAIL(500, "失败"),
    FORBIDDEN(403, "拒绝访问"),
    PARAMETER_VERIFY_FAIL(1000, "参数校验失败"),
    BUSINESS_FAIL(5000, "业务处理异常"),
    DATA_NOT_EXIST(600, "数据不存在"),
    USER_NOT_EXIST(700, "用户不存在"),
    USER_IS_CANCEL(701, "该用户已注销"),
    USER_IS_FROZEN(702, "该用户已冻结"),
    OPERATION_TOO_FREQUENTLY(800, "操作太频繁"),
    AREA_VERIFY_FAIL(900, "地址无效"),
    IS_NULL(901, "数据不存在"),

    // 账号相关
    REGISTERED_ACCOUNT_EXISTS(160001, "注册手机号或登录账号已存在"),
    USER_BOUND_WECHAT(160002, "手机号已绑定了微信存在"),
    USER_STAFF_NULL(160003, "该手机号未绑定员工信息"),

    // 联系人
    CONTACTS_NOT_EXIST(170004, "联系人不存在"),

    // 员工信息
    STAFF_DISABLE(190001, "该员工信息已停用"),
    STAFF_PHONE_SIMILARITY(190002, "该手机号已存在员工"),
    STAFF_NULL(190003, "该手机号无可用店铺"),

    // 机构
    BUSINESS_NOT_EXIST(200002, "找不到对应的机构，可能已被删除！"),
    BUSINESS_ACCOUNT_TOTAL_ZERO(200500, "操作失败，当前机构可分配账号数为 0 ！"),
    BUSINESS_ACCOUNT_TOTAL_LOW(200501, "操作失败，当前机构可分配账号不足！"),

    // 标签
    TAG_NOT_EXIST(300002, "标签已被删除！"),

    TEACHING_COURSE_NOT_EXIST(400002, "课程已被删除！"),

    CLASS_COURSE_NOT_EXIST(500002, "课程已被删除！"),

    /**********98模块错误码begin****************/
    /*01代表达达*/
    /*02代表腾讯地图*/

    /**********98模块错误码end**********/

    /**********99模块错误码begin**********/
    // 01代表编号生产工具
    TOOLS_CODEGENERATION_DATA_OUT_SYNC(990101, "代码生成器并发生成编号，数据不一致异常");

    // 02代表XXXX
    /**********99模块错误码end**********/

    /**
     * 响应码
     */
    private int code;
    /**
     * 响应信息
     */
    @Setter
    private String msg;

    ResultCode(int code, String msg) {
        this.code = code;
        this.msg = msg;
    }

    public int getCode() {
        return code;
    }

    public String getMsg() {
        return msg;
    }
}
